home *** CD-ROM | disk | FTP | other *** search
/ Guide to Astrology / Guide to Astrology.iso / astro_14 / espscore.pas < prev    next >
Pascal/Delphi Source File  |  1995-12-30  |  20KB  |  586 lines

  1. {$R+}
  2. {$U+}
  3. {**********************************************************}
  4. {**                                                      **}
  5. {**      ESPSCORE                                        **}
  6. {**                                                      **}
  7. {**      A  unit that saves scores:                      **}
  8. {**      in a series of records that represent a total   **}
  9. {**      record of time, date, elapsed time, color of    **}
  10. {**      the screen, type of sound reinforcement, type   **}
  11. {**      of visual reinforcement, the placement of the   **}
  12. {**      target on the select menu, the target and the   **}
  13. {**      current name of the saved file.                 **}
  14. {**                                                      **}
  15. {**      Copyright 1991 Phil Mosier                      **}
  16. {**                                                      **}
  17. {**********************************************************}
  18. Unit ESPSCORE;
  19. {****}
  20. Interface
  21. Uses Graph,Crt;
  22. Procedure SAVESCORE(Var WRITE_OK : Boolean;
  23.                     D_TARGET:Char;
  24.                     D_GUESS:Char;
  25.                     D_HIT_MISS:Char;
  26.                     D_COLOR_OF_CARD:Char;
  27.                     D_SCREEN_DISPLAY1:Char;
  28.                     D_SCREEN_DISPLAY2:Char;
  29.                     D_SCREEN_DISPLAY3:Char;
  30.                     D_SCREEN_DISPLAY4:Char;
  31.                     D_SCREEN_DISPLAY5:Char;
  32.                     D_REINFORCE_SOUND:Char;
  33.                     D_REINFORCE_VISUAL:Char;
  34.                     D_STYLE:Char;
  35.                     D_CUR_YEAR:Word;
  36.                     D_CUR_MONTH:Word;
  37.                     D_CUR_DAY:Word;
  38.                     D_START_HOUR:Word;
  39.                     D_START_MIN:Word;
  40.                     D_START_SEC:Word;
  41.                     D_ELAPESED_SEC:LongInt;
  42.                     D_NAME1: Char;
  43.                     D_NAME2: Char;
  44.                     D_NAME3: Char;
  45.                     D_NAME4: Char;
  46.                     D_NAME5: Char;
  47.                     D_NAME6: Char;
  48.                     D_NAME7: Char;
  49.                     D_NAME8: Char);
  50.  
  51.  
  52. Procedure GETSCORE (Var HITS:Word;
  53.                     Var TRIALS :Word;
  54.                     Var FOUND_FLAG : Boolean;
  55.                     D_NAME1: Char;
  56.                     D_NAME2: Char;
  57.                     D_NAME3: Char;
  58.                     D_NAME4: Char;
  59.                     D_NAME5: Char;
  60.                     D_NAME6: Char;
  61.                     D_NAME7: Char;
  62.                     D_NAME8: Char);
  63.  
  64. Procedure GET_RATIOS(Var HIT_I_1: Word;
  65.                      Var HIT_I_2: Word;
  66.                      Var HIT_I_3: Word;
  67.                      Var HIT_I_4: Word;
  68.                      Var HIT_I_5: Word;
  69.                      Var HIT_P_1: Word;
  70.                      Var HIT_P_2: Word;
  71.                      Var HIT_P_3: Word;
  72.                      Var HIT_P_4: Word;
  73.                      Var HIT_P_5: Word;
  74.                      Var TRIAL_I_1: Word;
  75.                      Var TRIAL_I_2: Word;
  76.                      Var TRIAL_I_3: Word;
  77.                      Var TRIAL_I_4: Word;
  78.                      Var TRIAL_I_5: Word;
  79.                      Var TRIAL_P_1: Word;
  80.                      Var TRIAL_P_2: Word;
  81.                      Var TRIAL_P_3: Word;
  82.                      Var TRIAL_P_4: Word;
  83.                      Var TRIAL_P_5: Word;
  84.                      Var TIME_SHORT_HIT: Word;
  85.                      Var TIME_LONG_HIT: Word;
  86.                      Var TIME_SHORT_TRIAL: Word;
  87.                      Var TIME_LONG_TRIAL: Word;
  88.                      Var FOUND_FLAG : Boolean;
  89.                      D_NAME1: Char;
  90.                      D_NAME2: Char;
  91.                      D_NAME3: Char;
  92.                      D_NAME4: Char;
  93.                      D_NAME5: Char;
  94.                      D_NAME6: Char;
  95.                      D_NAME7: Char;
  96.                      D_NAME8: Char);
  97.  
  98.  
  99. Implementation
  100.  
  101. Procedure SAVESCORE(Var WRITE_OK: Boolean;
  102.                     D_TARGET:Char;
  103.                     D_GUESS:Char;
  104.                     D_HIT_MISS:Char;
  105.                     D_COLOR_OF_CARD:Char;
  106.                     D_SCREEN_DISPLAY1:Char;
  107.                     D_SCREEN_DISPLAY2:Char;
  108.                     D_SCREEN_DISPLAY3:Char;
  109.                     D_SCREEN_DISPLAY4:Char;
  110.                     D_SCREEN_DISPLAY5:Char;
  111.                     D_REINFORCE_SOUND:Char;
  112.                     D_REINFORCE_VISUAL:Char;
  113.                     D_STYLE:Char;
  114.                     D_CUR_YEAR:Word;
  115.                     D_CUR_MONTH:Word;
  116.                     D_CUR_DAY:Word;
  117.                     D_START_HOUR:Word;
  118.                     D_START_MIN:Word;
  119.                     D_START_SEC:Word;
  120.                     D_ELAPESED_SEC:LongInt;
  121.                     D_NAME1: Char;
  122.                     D_NAME2: Char;
  123.                     D_NAME3: Char;
  124.                     D_NAME4: Char;
  125.                     D_NAME5: Char;
  126.                     D_NAME6: Char;
  127.                     D_NAME7: Char;
  128.                     D_NAME8: Char);
  129.  
  130. {*********************************************************}
  131. {**                                                     **}
  132. {**     SAVE SCORE                                      **}
  133. {**                                                     **}
  134. {*********************************************************}
  135. Var GUESS_FILE  : Text;
  136.     DAT_GUESS_RECORD : Array[1..43] Of Char;
  137.     DATE_TEMP : String[10];
  138.     TIME_TEMP : String[8];
  139.     ELAPESED_SEC_TEMP : String[5];
  140.     INDEX : Byte;
  141.     YEAR_ST4 : String[4];
  142.     MONTH_ST2 : String[2];
  143.     DAY_ST2 : String[2];
  144.     HOUR_ST2 : String[2];
  145.     MIN_ST2 : String[2];
  146.     SEC_ST2 : String[2];
  147.     IOCODE : Word;
  148.     OKAY_FLAG : Boolean;
  149.     GUESS_FILE_NAME : String[12];
  150.     TEMP_FILE_NAME : String[8];
  151.     TEST : STRING[4];
  152. Begin
  153.    DAT_GUESS_RECORD[1] := D_TARGET;
  154.    DAT_GUESS_RECORD[2] := D_GUESS;
  155.    DAT_GUESS_RECORD[3] := D_HIT_MISS;
  156.    DAT_GUESS_RECORD[4] := D_COLOR_OF_CARD;
  157.    DAT_GUESS_RECORD[5] := D_SCREEN_DISPLAY1;
  158.    DAT_GUESS_RECORD[6] := D_SCREEN_DISPLAY2;
  159.    DAT_GUESS_RECORD[7] := D_SCREEN_DISPLAY3;
  160.    DAT_GUESS_RECORD[8] := D_SCREEN_DISPLAY4;
  161.    DAT_GUESS_RECORD[9] := D_SCREEN_DISPLAY5;
  162.    DAT_GUESS_RECORD[10] := D_REINFORCE_SOUND;
  163.    DAT_GUESS_RECORD[11] := D_REINFORCE_VISUAL;
  164.    DAT_GUESS_RECORD[12] := D_STYLE;
  165.    Str(D_CUR_YEAR:4,YEAR_ST4);
  166.    Str(D_CUR_MONTH:2,MONTH_ST2);
  167.    Str(D_CUR_DAY:2,DAY_ST2);
  168.    DATE_TEMP := YEAR_ST4+'-'+MONTH_ST2+'-'+DAY_ST2;
  169.    For INDEX := 1 To 10 Do
  170.       DAT_GUESS_RECORD[12 + INDEX] := DATE_TEMP[INDEX];
  171.    Str(D_START_HOUR:2,HOUR_ST2);
  172.    Str(D_START_MIN:2,MIN_ST2);
  173.    Str(D_START_SEC:2,SEC_ST2);
  174.    TIME_TEMP := HOUR_ST2+':'+MIN_ST2+':'+SEC_ST2;
  175.    For INDEX :=1 To 8 Do
  176.       DAT_GUESS_RECORD[22 + INDEX] := TIME_TEMP[INDEX];
  177.    Str(D_ELAPESED_SEC:5,ELAPESED_SEC_TEMP);
  178.    For INDEX := 1 To 5 Do
  179.       DAT_GUESS_RECORD[30 + INDEX] := ELAPESED_SEC_TEMP[INDEX];
  180.    DAT_GUESS_RECORD[36] := D_NAME1;
  181.    DAT_GUESS_RECORD[37] := D_NAME2;
  182.    DAT_GUESS_RECORD[38] := D_NAME3;
  183.    DAT_GUESS_RECORD[39] := D_NAME4;
  184.    DAT_GUESS_RECORD[40] := D_NAME5;
  185.    DAT_GUESS_RECORD[41] := D_NAME6;
  186.    DAT_GUESS_RECORD[42] := D_NAME7;
  187.    DAT_GUESS_RECORD[43] := D_NAME8;
  188.    For INDEX :=  36 To 43 Do
  189.      Begin
  190.        If DAT_GUESS_RECORD[INDEX] <> ' ' Then
  191.           Begin
  192.              TEMP_FILE_NAME[INDEX - 35] := DAT_GUESS_RECORD[INDEX];
  193.              TEMP_FILE_NAME[0] := Char(INDEX - 35);
  194.           End   { End Of DAT_GUESS_RECORD[INDEX] <> ' ' }
  195.      End; {  End Of For INDEX 36 To 43 }
  196.      GUESS_FILE_NAME  := TEMP_FILE_NAME+'.ESP';
  197. {************************************************}
  198. {**                                            **}
  199. {**   This set of lines could print file       **}
  200. {**   instead of writing them to a file        **}
  201. {**                                            **}
  202. {**  ASSIGN (GUESS_FILE,'PRN');                **}
  203. {**  RESET (GUESS_FILE);                       **}
  204. {**  WRITELN(GUESS_FILE,DAT_GUESS_RECORD);     **}
  205. {************************************************}
  206.   WRITE_OK := True;
  207.   Assign(GUESS_FILE,GUESS_FILE_NAME);
  208.   {$I-}
  209.   RESET(GUESS_FILE);
  210.   IOCODE := IOResult;
  211.   {$I+}
  212.   If IOCODE <> 0 Then
  213.   Begin
  214.      If IOCODE = 2 Then
  215.      Begin
  216.         {$I-}
  217.         ReWrite(GUESS_FILE);
  218.         {$I+}
  219.         IOCODE := IOResult;
  220.         If IOCODE = 0 Then
  221.         Begin
  222.            WriteLn(GUESS_FILE,DAT_GUESS_RECORD);
  223.            Close(GUESS_FILE)
  224.         End
  225.         Else
  226.         Begin
  227.            WRITE_OK := False;
  228.            ClearDevice;
  229.            MoveTo(0,190);
  230.            OutText('  Disk Problems !');
  231.            Sound(440);
  232.            Delay(1000);
  233.            NoSound
  234.         End { If IOCODE <> 0 }
  235.      End   {If IOCODE = 2}
  236.      Else
  237.      Begin
  238.         WRITE_OK := False;
  239.         ClearDevice;
  240.         MoveTo(0,190);
  241.         OutText('  Disk Problems !');
  242.         Sound(440);
  243.         Delay(1000);
  244.         NoSound
  245.      End  { IOCODE <> 2}
  246.   End
  247.   Else
  248.   Begin
  249.      APPEND(GUESS_FILE);
  250.      WriteLn(GUESS_FILE, DAT_GUESS_RECORD);
  251.      Close(GUESS_FILE)
  252.   End   {** If IOCODE = 0 **}
  253. End;   { End of SAVESCORE  }
  254.  
  255. Procedure GETSCORE (Var HITS: Word;
  256.                     Var TRIALS: Word;
  257.                     Var FOUND_FLAG :Boolean;
  258.                     D_NAME1: Char;
  259.                     D_NAME2: Char;
  260.                     D_NAME3: Char;
  261.                     D_NAME4: Char;
  262.                     D_NAME5: Char;
  263.                     D_NAME6: Char;
  264.                     D_NAME7: Char;
  265.                     D_NAME8: Char);
  266. {**************************************}
  267. {**                                  **}
  268. {**************************************}
  269.  
  270. Var STRING8: String[9];
  271.     FILE_NAME: String[12];
  272.     DAT_GUESS_RECORD: String[43];
  273.     INDEX: Byte;
  274.     GUESS_FILE: Text;
  275.     IOCODE: Word;
  276.     TEMP:String[17];
  277.  
  278. Begin
  279.     FOUND_FLAG := True;
  280.     HITS := 0;
  281.     TRIALS := 0;
  282.     For INDEX := 1 To 43 Do
  283.        DAT_GUESS_RECORD[INDEX] := ' ';
  284.     STRING8[1] := D_NAME1;
  285.     STRING8[2] := D_NAME2;
  286.     STRING8[3] := D_NAME3;
  287.     STRING8[4] := D_NAME4;
  288.     STRING8[5] := D_NAME5;
  289.     STRING8[6] := D_NAME6;
  290.     STRING8[7] := D_NAME7;
  291.     STRING8[8] := D_NAME8;
  292.     INDEX := 1;
  293.     Repeat
  294.        STRING8[0] := Char(INDEX);
  295.        INDEX := INDEX + 1;
  296.     Until ((STRING8[INDEX] = ' ') Or (INDEX > 8));
  297.     FILE_NAME  := STRING8+'.ESP';
  298.     Assign(GUESS_FILE,FILE_NAME);
  299.     {$I-}
  300.     Reset(GUESS_FILE);
  301.     {$I+}
  302.     IOCODE := IOResult;
  303.     If IOCODE <> 0 Then
  304.        If IOCODE = 2 Then
  305.        Begin
  306.           ClearDevice;
  307.           MoveTo(0,80);
  308.           OutText(FILE_NAME);
  309.           MoveTo(0,120);
  310.           OutText('File not found');
  311.           Delay(4000);
  312.           FOUND_FLAG := False;
  313.        End   { End If iocode = 2 }
  314.     Else
  315.        Begin
  316.           ClearDevice;
  317.           MoveTo(0,190);
  318.           OutText('  Disk Problems !');
  319.           Sound(440);
  320.           Delay(1000);
  321.           NoSound;
  322.           Halt(0);
  323.        End
  324.     Else
  325.        Begin    { If IOCODE = 0 }
  326.        While Not Eof(GUESS_FILE) Do
  327.           Begin
  328.              ReadLn(GUESS_FILE,DAT_GUESS_RECORD);
  329.              If DAT_GUESS_RECORD[3] = 'H' Then
  330.                 HITS := HITS + 1;
  331.              TRIALS := TRIALS + 1;
  332.           End;    {  While Not EOF }
  333.        Close(GUESS_FILE);
  334.        End;  { If IOCODE = 0 }
  335.     End; { End of GETSCORE }
  336.  
  337. Procedure GET_RATIOS(Var HIT_I_1: Word;
  338.                      Var HIT_I_2: Word;
  339.                      Var HIT_I_3: Word;
  340.                      Var HIT_I_4: Word;
  341.                      Var HIT_I_5: Word;
  342.                      Var HIT_P_1: Word;
  343.                      Var HIT_P_2: Word;
  344.                      Var HIT_P_3: Word;
  345.                      Var HIT_P_4: Word;
  346.                      Var HIT_P_5: Word;
  347.                      Var TRIAL_I_1: Word;
  348.                      Var TRIAL_I_2: Word;
  349.                      Var TRIAL_I_3: Word;
  350.                      Var TRIAL_I_4: Word;
  351.                      Var TRIAL_I_5: Word;
  352.                      Var TRIAL_P_1: Word;
  353.                      Var TRIAL_P_2: Word;
  354.                      Var TRIAL_P_3: Word;
  355.                      Var TRIAL_P_4: Word;
  356.                      Var TRIAL_P_5: Word;
  357.                      Var TIME_SHORT_HIT: Word;
  358.                      Var TIME_LONG_HIT: Word;
  359.                      Var TIME_SHORT_TRIAL: Word;
  360.                      Var TIME_LONG_TRIAL: Word;
  361.                      Var FOUND_FLAG : Boolean;
  362.                      D_NAME1: Char;
  363.                      D_NAME2: Char;
  364.                      D_NAME3: Char;
  365.                      D_NAME4: Char;
  366.                      D_NAME5: Char;
  367.                      D_NAME6: Char;
  368.                      D_NAME7: Char;
  369.                      D_NAME8: Char);
  370.  
  371. {**************************************}
  372. {**                                  **}
  373. {**************************************}
  374.  
  375. Var STRING5: String[5];
  376.     STRING8: String[9];
  377.     FILE_NAME: String[12];
  378.     DAT_GUESS_RECORD: String[43];
  379.     INDEX: Byte;
  380.     STRING_INDEX: Word;
  381.     GUESS_FILE: Text;
  382.     IOCode: Word;
  383.     THIS_ELAPSED_SEC : Real;
  384.     TOTAL_SEC : Real;
  385.     CODE : Integer;
  386.     REC_COUNT : Word;
  387.     AVER_SEC : Real;
  388. Begin
  389.     FOUND_FLAG := True;
  390.     HIT_I_1:= 0;
  391.     HIT_I_2:= 0;
  392.     HIT_I_3:= 0;
  393.     HIT_I_4:= 0;
  394.     HIT_I_5:= 0;
  395.     HIT_P_1:= 0;
  396.     HIT_P_2:= 0;
  397.     HIT_P_3:= 0;
  398.     HIT_P_4:= 0;
  399.     HIT_P_5:= 0;
  400.     TRIAL_I_1:= 0;
  401.     TRIAL_I_2:= 0;
  402.     TRIAL_I_3:= 0;
  403.     TRIAL_I_4:= 0;
  404.     TRIAL_I_5:= 0;
  405.     TRIAL_P_1:= 0;
  406.     TRIAL_P_2:= 0;
  407.     TRIAL_P_3:= 0;
  408.     TRIAL_P_4:= 0;
  409.     TRIAL_P_5:= 0;
  410.     TOTAL_SEC := 0;
  411.     TIME_SHORT_HIT:= 0;
  412.     TIME_LONG_HIT:= 0;
  413.     TIME_SHORT_TRIAL:= 0;
  414.     TIME_LONG_TRIAL:= 0;
  415.     REC_COUNT := 0;
  416.     For INDEX := 1 To 43 Do
  417.        DAT_GUESS_RECORD[INDEX] := ' ';
  418.     STRING8[1] := D_NAME1;
  419.     STRING8[2] := D_NAME2;
  420.     STRING8[3] := D_NAME3;
  421.     STRING8[4] := D_NAME4;
  422.     STRING8[5] := D_NAME5;
  423.     STRING8[6] := D_NAME6;
  424.     STRING8[7] := D_NAME7;
  425.     STRING8[8] := D_NAME8;
  426.     INDEX := 1;
  427.     Repeat
  428.        STRING8[0] := Char(INDEX);
  429.        INDEX := INDEX + 1;
  430.     Until ((STRING8[INDEX] = ' ') Or (INDEX > 8));
  431.     FILE_NAME  := STRING8+'.ESP';
  432.     Assign(GUESS_FILE,FILE_NAME);
  433.     {$I-}
  434.     Reset(GUESS_FILE);
  435.     {$I+}
  436.     IOCODE := IOResult;
  437.     If IOCODE <> 0 Then
  438.        If IOCODE = 2 Then
  439.        Begin
  440.           ClearDevice;
  441.           MoveTo(0,80);
  442.           OutText(FILE_NAME);
  443.           MoveTo(0,90);
  444.           OutText('File not found');
  445.           Delay(4000);
  446.           FOUND_FLAG := False;
  447.        End   { End If IOCode = 2 }
  448.        Else
  449.        Begin
  450.           ClearDevice;
  451.           MoveTo(0,80);
  452.           OutText('Disk problems!');
  453.           MoveTo(0,100);
  454.           OutText(STRING5);
  455.           Delay(4000);
  456.           FOUND_FLAG := False;
  457.           Halt(0);
  458.     End
  459.     Else
  460.     Begin
  461.        While Not Eof(GUESS_FILE) Do
  462.        Begin
  463.           ReadLn(GUESS_FILE,DAT_GUESS_RECORD);
  464. {*********************************************************}
  465. {**        DAT_GUESS_RECORD[1]  -- Target               **}
  466. {**        DAT_GUESS_RECORD[3]  -- Hit/Miss             **}
  467. {*********************************************************}
  468.  
  469.           If ((DAT_GUESS_RECORD[Ord(DAT_GUESS_RECORD[1]) - 44] = '1') And
  470.               (DAT_GUESS_RECORD[3] = 'H')) Then
  471.               HIT_I_1 := HIT_I_1 + 1;
  472.           If ((DAT_GUESS_RECORD[Ord(DAT_GUESS_RECORD[1]) - 44] = '2') And
  473.               (DAT_GUESS_RECORD[3] = 'H')) Then
  474.               HIT_I_2 := HIT_I_2 + 1;
  475.           If ((DAT_GUESS_RECORD[Ord(DAT_GUESS_RECORD[1]) - 44] = '3') And
  476.               (DAT_GUESS_RECORD[3] = 'H')) Then
  477.               HIT_I_3 := HIT_I_3 + 1;
  478.           If ((DAT_GUESS_RECORD[Ord(DAT_GUESS_RECORD[1]) - 44] = '4') And
  479.               (DAT_GUESS_RECORD[3] = 'H')) Then
  480.               HIT_I_4 := HIT_I_4 + 1;
  481.           If ((DAT_GUESS_RECORD[Ord(DAT_GUESS_RECORD[1]) - 44] = '5') And
  482.               (DAT_GUESS_RECORD[3] = 'H')) Then
  483.               HIT_I_5 := HIT_I_5 + 1;
  484. {*********************************************************}
  485. {**        DAT_GUESS_RECORD[2]  -- Place you choose     **}
  486. {**        DAT_GUESS_RECORD[3]  -- Hit/Miss             **}
  487. {*********************************************************}
  488.  
  489.           If ((DAT_GUESS_RECORD[2] = '1') And
  490.               (DAT_GUESS_RECORD[3] = 'H')) Then
  491.               HIT_P_1 := HIT_P_1 + 1;
  492.           If ((DAT_GUESS_RECORD[2] = '2') And
  493.               (DAT_GUESS_RECORD[3] = 'H')) Then
  494.               HIT_P_2 := HIT_P_2 + 1;
  495.           If ((DAT_GUESS_RECORD[2] = '3') And
  496.               (DAT_GUESS_RECORD[3] = 'H')) Then
  497.               HIT_P_3 := HIT_P_3 + 1;
  498.           If ((DAT_GUESS_RECORD[2] = '4') And
  499.               (DAT_GUESS_RECORD[3] = 'H')) Then
  500.               HIT_P_4 := HIT_P_4 + 1;
  501.           If ((DAT_GUESS_RECORD[2] = '5') And
  502.               (DAT_GUESS_RECORD[3] = 'H')) Then
  503.               HIT_P_5 := HIT_P_5 + 1;
  504.  
  505. {*********************************************************}
  506. {**        DAT_GUESS_RECORD[2]  -- Place you choose     **}
  507. {**        DAT_GUESS_RECORD[Ord( "       ) - 44]        **}
  508. {**                             -- Image you choose     **}
  509. {*********************************************************}
  510.           If DAT_GUESS_RECORD[Ord(DAT_GUESS_RECORD[2]) - 44]
  511.                 = '1' Then TRIAL_I_1 := TRIAL_I_1 + 1;
  512.           If DAT_GUESS_RECORD[Ord(DAT_GUESS_RECORD[2]) - 44]
  513.                 = '2' Then TRIAL_I_2 := TRIAL_I_2 + 1;
  514.           If DAT_GUESS_RECORD[Ord(DAT_GUESS_RECORD[2]) - 44]
  515.                 = '3' Then TRIAL_I_3 := TRIAL_I_3 + 1;
  516.           If DAT_GUESS_RECORD[Ord(DAT_GUESS_RECORD[2]) - 44]
  517.                 = '4' Then TRIAL_I_4 := TRIAL_I_4 + 1;
  518.           If DAT_GUESS_RECORD[Ord(DAT_GUESS_RECORD[2]) - 44]
  519.                 = '5' Then TRIAL_I_5 := TRIAL_I_5 + 1;
  520. {*********************************************************}
  521. {**        DAT_GUESS_RECORD[2]  -- Place you choose     **}
  522. {*********************************************************}
  523.           If DAT_GUESS_RECORD[2] = '1' Then
  524.               TRIAL_P_1 := TRIAL_P_1 + 1;
  525.  
  526.           If DAT_GUESS_RECORD[2] = '2' Then
  527.               TRIAL_P_2 := TRIAL_P_2 + 1;
  528.  
  529.           If DAT_GUESS_RECORD[2] = '3' Then
  530.               TRIAL_P_3 := TRIAL_P_3 + 1;
  531.  
  532.           If DAT_GUESS_RECORD[2] = '4' Then
  533.               TRIAL_P_4 := TRIAL_P_4 + 1;
  534.  
  535.           If DAT_GUESS_RECORD[2] = '5' Then
  536.               TRIAL_P_5 := TRIAL_P_5 + 1;
  537.           STRING_INDEX :=0;
  538.           For INDEX := 1 To 5 Do
  539.           Begin
  540.              If DAT_GUESS_RECORD[30 + INDEX] <> ' ' Then
  541.              Begin
  542.                 STRING_INDEX := STRING_INDEX + 1;
  543.                 STRING5[STRING_INDEX] := DAT_GUESS_RECORD[30 + INDEX];
  544.              End
  545.           End;
  546.           STRING5[0] := Char(STRING_INDEX);
  547.           Val(STRING5,THIS_ELAPSED_SEC,CODE);
  548.           TOTAL_SEC := TOTAL_SEC + THIS_ELAPSED_SEC;
  549.           REC_COUNT := REC_COUNT + 1;
  550.           AVER_SEC := TOTAL_SEC / REC_COUNT;
  551.           AVER_SEC := AVER_SEC / 2;
  552.       End;  { while not eof }
  553.       Assign(GUESS_FILE,FILE_NAME);
  554.       Reset(GUESS_FILE);
  555.       While Not Eof(GUESS_FILE) Do
  556.       Begin
  557.           ReadLn(GUESS_FILE,DAT_GUESS_RECORD);
  558.           STRING_INDEX :=0;
  559.           For INDEX := 1 To 5 Do
  560.              Begin
  561.                 If DAT_GUESS_RECORD[30 + INDEX] <> ' ' Then
  562.                    Begin
  563.                      STRING_INDEX := STRING_INDEX + 1;
  564.                      STRING5[STRING_INDEX] := DAT_GUESS_RECORD[30 + INDEX];
  565.                    End
  566.              End;
  567.           STRING5[0] := Char(STRING_INDEX);
  568.           Val(STRING5,THIS_ELAPSED_SEC,CODE);
  569.           If ((DAT_GUESS_RECORD[3] = 'H') And
  570.              (AVER_SEC >= THIS_ELAPSED_SEC)) Then
  571.                 TIME_SHORT_HIT := TIME_SHORT_HIT + 1;
  572.           If (AVER_SEC >= THIS_ELAPSED_SEC) Then
  573.              TIME_SHORT_TRIAL := TIME_SHORT_TRIAL + 1;
  574.           If ((DAT_GUESS_RECORD[3] = 'H') And
  575.              (AVER_SEC < THIS_ELAPSED_SEC)) Then
  576.                 TIME_LONG_HIT := TIME_LONG_HIT + 1;
  577.           If (AVER_SEC < THIS_ELAPSED_SEC) Then
  578.              TIME_LONG_TRIAL := TIME_LONG_TRIAL + 1;
  579.        End;     {  while not EOF }
  580.     End; { IOCODE = 0 }
  581.     Close(GUESS_FILE);
  582.  
  583.  
  584. End; { End of GET_RATIOS }
  585.  
  586. End.  { End of ESPSCORE  }